package com.lee.app.mapper;

import com.lee.app.entity.Permission;
import com.lee.app.entity.User;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * @author Lee
 */
@Repository
public interface UserMapper {
    /**
     * 通过账号密码来查询一条对应的用户信息
     *
     * @param user 包含了账号和密码的用户实体
     * @return 一条对应的用户信息
     */
    User selectByUsernameAndPassword(User user);

    /**
     * 查询全部用户信息，包括用户编号
     *
     * @return 全部用户信息，包括用户编号
     */
    List<User> selectWithUserNo();

    /**
     * 根据主键查询一条用户信息，包括用户编号
     *
     * @param id 用户主键
     * @return 一条用户信息，包括用户编号
     */
    User selectByIdWithUserNo(@Param("id") Integer id);

    /**
     * 添加一条用户记录
     *
     * @param user 用户实体
     */
    void insert(User user);

    /**
     * 通过主键修改用户信息
     *
     * @param user 用户实体
     */
    void updateById(User user);

    /**
     * 根据用户主键删除用户信息
     *
     * @param id 用户主键
     */
    void deleteById(@Param("id") Integer id);
}
